package cn.seaboot.admin.user.bean;


import io.swagger.v3.oas.annotations.media.Schema;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * POJO
 * 分组 [t_sys_user_dept]
 * <p>
 *
 * @author Mr.css on  2019-03-25 11:40
 */
@Schema(description = " 用户分组 [t_sys_user_dept] 实体类")
public class UserDept implements Serializable {
    private static final long serialVersionUID = 3634600522111192303L;

    /**
     * ID
     */
    @NotNull()
    @Schema(description = "ID")
    private String id;
    /**
     * 层级路径
     */
    @NotNull
    @Size(max = 10)
    @Schema(description = "层级路径")
    private String path;

    /**
     * 层级
     */
    @Schema(description = "层级")
    private Integer level;
    /**
     * 父级
     */
    @NotNull
    @Schema(description = "父级")
    private String pid;
    /**
     * 角色ID
     */
    @NotNull
    @Schema(description = "角色ID")
    private String roleId;
    /**
     * 所属机构
     */
    @NotNull
    @Schema(description = "所属机构")
    private String orgId;
    /**
     * 分组编码
     */
    @NotNull
    @Size(max = 64)
    @Schema(description = "分组编码")
    private String deptCode;
    /**
     * 分组名称
     */
    @NotNull
    @Size(max = 64)
    @Schema(description = "分组名称")
    private String deptName;
    /**
     * 图标
     */
    @NotNull
    @Size(max = 64)
    @Schema(description = "图标")
    private String icon;
    /**
     * 分组描述
     */
    @NotNull
    @Size(max = 64)
    @Schema(description = "分组描述")
    private String description;
    /**
     * 是否可编辑(用于业务需要固定节点)
     */
    @NotNull
    @Schema(description = "是否可编辑")
    private Boolean editable;
    /**
     * 是否可编辑(用于业务需要固定节点)
     */
    @NotNull
    @Schema(description = "是否禁用")
    private Boolean disabled;
    /**
     * 创建日期
     */
    @NotNull
    @Schema(description = "创建日期")
    private LocalDateTime gmtCreate;
    /**
     * 修改日期
     */
    @NotNull
    @Schema(description = "修改日期")
    private LocalDateTime gmtModified;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public String getPid() {
        return pid;
    }

    public void setPid(String pid) {
        this.pid = pid;
    }

    public String getRoleId() {
        return roleId;
    }

    public void setRoleId(String roleId) {
        this.roleId = roleId;
    }

    public String getOrgId() {
        return orgId;
    }

    public void setOrgId(String orgId) {
        this.orgId = orgId;
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getDeptCode() {
        return deptCode;
    }

    public void setDeptCode(String deptCode) {
        this.deptCode = deptCode;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Boolean getEditable() {
        return editable;
    }

    public void setEditable(Boolean editable) {
        this.editable = editable;
    }

    public Boolean getDisabled() {
        return disabled;
    }

    public void setDisabled(Boolean disabled) {
        this.disabled = disabled;
    }

    public LocalDateTime getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(LocalDateTime gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public LocalDateTime getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(LocalDateTime gmtModified) {
        this.gmtModified = gmtModified;
    }

    @Override
    public String toString() {
        return "UserDept{" +
                "id='" + id + '\'' +
                ", path='" + path + '\'' +
                ", level=" + level +
                ", pid='" + pid + '\'' +
                ", roleId='" + roleId + '\'' +
                ", orgId='" + orgId + '\'' +
                ", deptCode='" + deptCode + '\'' +
                ", deptName='" + deptName + '\'' +
                ", icon='" + icon + '\'' +
                ", description='" + description + '\'' +
                ", editable=" + editable +
                ", disabled=" + disabled +
                ", gmtCreate=" + gmtCreate +
                ", gmtModified=" + gmtModified +
                '}';
    }
}

